Programming is Writing: Why Student Programs must be Carefully Read

نویسندگان

  • Gary T. Leavens
  • Albert L. Baker
  • Vasant Honavar
  • Steven M. LaValle
  • Gurpur M. Prabhu
  • Gurpur Prabhu
  • Steven LaValle
چکیده

Teaching a student to write computer programs well is much like teaching a student to write English prose well. That is, although a program must be correct in every last detail, achieving correctness is only half of the task. The other half consists of quality factors such as clarity, organization, conciseness, maintainability, etc. Although these factors cannot be automatically measured, they have a large economic impact, because a major cost of software development is the time spent by other people reading programs to validate, maintain, and enhance them. To teach these quality factors, student programs must be read by a skilled programmer. Furthermore, grades for programs must be partly based on these quality factors. Completely automatic testing and grading of student programs by machine not only ignores these quality factors, it also fosters the attitude that such factors are unimportant. When programs are automatically tested and not read, students come to believe that functional correctness is all that matters. They tend to write programs by making changes in an initial attempt at a program until it “works.” The result is students who cannot write programs well. From this analysis and our experience, we conclude that enough human resources, such as teaching assistants, have to be made available for programming courses to ensure that there is adequate time for careful reading of student programs.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Why we need to read and understand literature: literariness and Hans Rosling’s Factfulness (2018)

My article addresses the qualities of “good” literature and how an understanding of the nature of literary devices, so-called “literariness”, can enhance the reading experience. Focusing on Hans Rosling’s Factfulness (2018), I discuss some of the most important features of good writing. Six literary devices have been selected for special attention: point of view, tone, amplification, anecdotes,...

متن کامل

Literate Programming, 1983

The past ten years have witnessed substantial improvements in programming methodology. This advance, carried out under the banner of “structured programming,” has led to programs that are more reliable and easier to comprehend; yet the results are not entirely satisfactory. My purpose in the present paper is to propose another motto that may be appropriate for the next decade, as we attempt to ...

متن کامل

Literate Programming

The past ten years have witnessed substantial improvements in programming methodology. This advance, carried out under the banner of “structured programming,” has led to programs that are more reliable and easier to comprehend; yet the results are not entirely satisfactory. My purpose in the present paper is to propose another motto that may be appropriate for the next decade, as we attempt to ...

متن کامل

Towards a Portable Lazy Functional Declarative Debugger

Declarative (or algorithmic) debugging is a promising technique for debugging lazy functional programs. This paper addresses two important reasons why it is not more widespread: the diiculty of writing a declarative debugger for a lazy functional language in the language itself and the eeciency of the debugger. Using the source language to implement the debugger is desirable for portability and...

متن کامل

Simulating Cellular Automata: A Challenge for Programming Languages

There is a long history of computer simulation of various natural and artificial phenomena. Representations based on cellular automata are attractive because they tend to be conceptually simple to set up, and in a suitable framework can be observed “at work.” Writing efficient and easily read/modified programs to run such simulations is a challenge to the designers and implementors of a program...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2014